package com.mobile.business.grid;

import java.util.List;
import java.util.Map;

import com.mobile.gridUtil.FilterBean;
import com.mobile.gridUtil.GridFilter;
import com.mobile.tools.PageBean;

public interface IGridBusiness<T> extends IBaseBusiness{
	
	String BEAN_ID="gridBusiness";
	
	public PageBean<T> getPageRecord(int start,int pageSize,List<GridFilter> gridFilterList);
	public PageBean<T> getPageRecord(int start,int pageSize,String entityName,List<GridFilter> gridFilterList);
	/**
	 * grid过滤
	 * @param start
	 * @param pageSize
	 * @param form
	 * @param map
	 * @return
	 */
	public PageBean<T> getPageBean(int start,int pageSize,Map<String,FilterBean> map);
	/**
	 * 删除多条记录
	 * @param uniqueCodes
	 */
	public void delete(String[] uniqueCodes);
	/**
	 * 通过唯一标识码来查找对象
	 * @param cl			域对象
	 * @param uniqueCode	唯一标识码
	 * @return				实体对象
	 */
	public T findById(Class cl,String uniqueCode);
	/**
	 * 获得所有数据
	 * @param pojo				域模型的类
	 * @param gridFilterList	要过滤的列表值
	 * @return					列表
	 */
	public List<T> getAllList(Object pojo,List<GridFilter> gridFilterList);
	/**
	 * 获得所有数据
	 * @param cl				域模型的类
	 * @param gridFilterList	要过滤的列表值
	 * @return					列表
	 */
	public List<T> getAllList(Class cl,List<GridFilter> gridFilterList);
	/**
	 * 获得所有数据
	 * @param cl				域模型的类
	 * @param map				需要处理的的map数据
	 * @return					列表
	 */
	public List<T> getAllList(Class cl,Map<String,FilterBean> map);
	/**
	 * 获得所有数据
	 * @param map				需要处理的的map数据
	 * @return					列表
	 */
	public List<T> getAllList(Map<String,FilterBean> map);
	/**
	 * 获得有默认参数的pojo
	 * @return
	 */
	public T getPojo();
	/**
	 * 获得有默认参数的pojo
	 * @return
	 */
	public void setPojo(T pojo);
}
